var Workport = Workport || {};

Workport.StreamDomain = {
	BasicRequest : function(){
		this.pageSize;		//Mandatory
		this.offset			//Optional
		this.latest;		//Mandatory
		this.filter			//Optional
	},
	BasicResponse : function(){
		this.code;
		this.message;
		this.notifications = [
		     function(){
		    	 this.id;
		    	 this.title;
		    	 this.targetId;
		    	 this.targetName;
		    	 this.targetImageUrl;
		    	 this.communityId;
		    	 this.communityName;
		    	 this.type;
		    	 this.entityType;
		    	 this.entityId;
		    	 this.entityImageUrl;
		    	 this.subentity;
		    	 this.createdDate;
		    	 this.lastModifiedDate;
		    	 this.serverDate;
		    	 this.feature = function(){
		    		 this.isLike;
			    	 this.isComment;
			    	 this.isShare;
			    	 this.isBookMark;
			    	 this.isExpert;
			    	 this.isSubscribe;
		    	 };
		     }
		];
	},
	SearchRequest : function(){
		this.key;			//Mandatory
		this.pageSize;		//Mandatory
		this.offset			//Optional
		this.type	;		//Optional
		this.targetId		//Optional
	},
	DefaultRequest : function(){
		this.pageSize;		//Mandatory
	},
	DefaultResponse : function(){
		this.code;
		this.message;
		this.notifications = [
		     function(){
		    	 this.id;
		    	 this.title;
		    	 this.targetId;
		    	 this.targetName;
		    	 this.targetImageUrl;
		    	 this.communityId;
		    	 this.communityName;
		    	 this.type;
		    	 this.entityType;
		    	 this.entityId;
		    	 this.entityImageUrl;
		    	 this.subentity;
		    	 this.createdDate;
		    	 this.lastModifiedDate;
		    	 this.serverDate;
		    	 this.feature = function(){
		    		 this.isLike;
			    	 this.isComment;
			    	 this.isShare;
			    	 this.isBookMark;
			    	 this.isExpert;
			    	 this.isSubscribe;
		    	 };
		     }
		];
	},
	NotificationRequest : function(){
		this.notificationId;	//Mandatory
		this.type;				//Mandatory - (U-user/C-community)
		this.targetId;			//Mandatory
		this.source;			//(smartstream/community/alert)

	},
	NotificationResponse : function(){
		this.code;
		this.message;
		this.id;
		this.title;
		this.text;
		this.body;
		this.fromId;
		this.fromName;
		this.fromImageUrl;
		this.targetId;
		this.targetName;
		this.targetImageUrl;
		this.communityId;
		this.communityName;
		this.attachments = [];
		this.images = [];
		this.type;
		this.expertCount;
		this.likeCount;
		this.commentCount;
		this.commentURL;
		this.isSubscribe;
		this.isBookMark;
		this.isLike;
		this.subentityType;
		this.tags = [];
		this.entityType;
		this.entityId;
		this.entityImageUrl;
		this.additionalData;
		this.enableDelete;
		this.status;
		this.createdDate;
		this.lastModifiedDate;
		this.serverDate;
		this.pagePosition;
		this.feature = function(){
			this.isLike;
			this.isComment;
			this.isShare;
			this.isBookMark;
			this.isExpert;
			this.isSubscribe;
		};
	},
	ConversationRequest : function(){
		this.targetId;	//Mandatory
		this.isPeronal;	//Mandatory:true/false
	},
	ConversationResponse : function(){
		this.code;
		this.message;
		this.id;
		this.title;
		this.text;
		this.body;
		this.fromId;
		this.fromName;
		this.fromImageUrl;
		this.targetId;
		this.targetName;
		this.targetImageUrl;
		this.communityId;
		this.communityName;
		this.attachments = [];
		this.images = [];
		this.type;
		this.expertCount;
		this.likeCount;
		this.commentCount;
		this.commentURL;
		this.isSubscribe;
		this.isBookMark;
		this.isLike;
		this.subentityType;
		this.tags = [];
		this.entityType;
		this.entityId;
		this.entityImageUrl;
		this.additionalData;
		this.enableDelete;
		this.status;
		this.createdDate;
		this.lastModifiedDate;
		this.serverDate;
		this.pagePosition;
		this.feature = function(){
			this.isLike;
			this.isComment;
			this.isShare;
			this.isBookMark;
			this.isExpert;
			this.isSubscribe;
		};
	},
	GenericShareRequest : function(){
		this.targetId; 		//Mandatory
		this.featured; 		//Optional
		this.subEntity; 	//Optional
		this.entityId;		//Mandatory
		this.tags;			//Optional
		this.text;			//Mandatory
		this.title;			//Optional
		this.type;			//Mandatory (""C\U"") - (U-user/C-community)
		this.url;			//Optional
		this.attachments = [ //Optional
		     function(){  
				this.content;
				this.name;
				this.type;		//Optional
		     } 
		];
		this.images = [
		    function(){  //Optional
				this.content;
				this.name;
				this.type;		//Optional
		    }
		];
	},
	GenericShareResponse : function(){
		this.code;
		this.message;
		this.notificationId;
	},
	ShareRequest : function(){
		this.targetId; 	//Mandatory
		this.entityId; 	//Mandatory
		this.subEntity; //Optional
		this.text; 		//Mandatory
		this.title; 	//Optional
		this.tags; 		//Optional
		this.type; 		//Mandatory ("C\U") - (U-user/C-community)
	},
	ShareResponse : function(){
		this.code;
		this.message;
		this.notificationId;
	},
	UpdateRequest : function(){
		this.targetId; 		//Mandatory
		this.status; 		//Optional
		this.additionalData; //Optional
		this.Id; 			//Mandatory
		this.type; 			//Mandatory (""C\U"") - (U-user/C-community)
		this.tags; 			//Optional
		this.text; 			//Mandatory
		this.title; 		//Optional
		this.broadcast; 	//Optional(Moderator/Network)
	},
	UpdateResponse : function(){
		this.code;
		this.message;
	},
	GenericUpdateRequest : function(){
		this.targetId; 		//Mandatory
		this.status; 		//Optional
		this.id; 			//Mandatory
		this.type; 			//Mandatory (""C\U"") - (U-user/C-community)
		this.tags; 			//Optional
		this.text; 			//Mandatory
		this.title; 		//Optional
		this.broadcast; 	//Optional(Moderator/Network)
		this.subEntity;     //Optional
		this.entityId;		//Mandatory
		this.url;			//Mandatory
		this.attachments = [  //Optional
		     function(){
		    	 this.content;
		    	 this.name;
		    	 this.type;   //Optional
		     }
		];
		this.images = [       //Optional
   		     function(){
   		    	this.content;
		    	 this.name;
		    	 this.type;   //Optional
   		     }
   		];
	},
	GenericUpdateResponse : function(){
		this.code;
		this.message;
	},
	FilterRequest : function(){
	},
	FilterResponse = [
        function(){
        	this.id;
        	this.name;
        }
    ],
    EntityRequest : function(){
	},
	EntityResponse = [
        function(){
        	this.id;
        	this.name;
        	this.url;
        }
    ],
    PostCommentRequest : function(){
    	this.id;		//Mandatory
    	this.type;		//Mandatory
    	this.text;		//Mandatory
    	this.targetId;	//Mandatory
	},
	PostCommentResponse : function(){
		this.code;
		this.message;
	},
	GetCommentRequest : function(){
		this.id;		//Mandatory
		this.targetId;	//Mandatory
		this.pageSize;	//Mandatory
		this.offset;	//Mandatory
		this.type;		//Mandatory
	},
	GetCommentResponse : function(){
		this.code;
		this.message;
		this.comments = [
		     function(){
		    	 this.commentId;
		    	 this.commentText;
		    	 this.communityId;
		    	 this.commentCount;
		    	 this.fromId;
		    	 this.fromName;
		    	 this.fromImageUrl;
		    	 this.targetId;
		    	 this.communityName;
		    	 this.commentsUrl;
		    	 this.likesCount;
		    	 this.isLike;
		    	 this.lastModifiedDate;
		    	 this.serverDate;
		    	 this.feature = function(){
		    	 	this.isLike;
		    	 };
		     }
		];
	},
	PostLikeRequest : function(){
    	this.id;			//Mandatory
    	this.type;			//Mandatory
    	this.fromId;		//Mandatory
    	this.commentId;		//optional
    	this.targetId;		//Mandatory
    	this.commentedBy;	//Mandatory
	},
	PostLikeResponse : function(){
		this.code;
		this.message;
	},
	LikeUserRequest : function(){
    	this.targetId;		//Mandatory,(NotificationId/CommentId)
    	this.pageSize;		//Mandatory
    	this.pageNumber;	//Mandatory
	},
	LikeUserResponse : function(){
		this.code;
		this.message;
		this.users = [
		     function(){
		    	 this.id;
		    	 this.name;
		    	 this.firstName;
		    	 this.lastName;
		    	 this.sip;
		    	 this.imageUrl;
		    	 this.isValid;
		     }
        ];
	},
	BookmarkRequest : function(){
    	this.id;		//Mandatory
    	this.type;		//Mandatory,(U-user/C-community)
    	this.action;	//Mandatory,(0-Bookmark/1-unbookmark)
    	this.communityId;	//Mandatory
	},
	BookmarkResponse : function(){
		this.code;
		this.message;
	},
	SubscribeRequest : function(){
    	this.id;		//Mandatory
    	this.action;	//Mandatory,0-Subscribe/1-Unsubsribe)
    	this.communityId;	//Mandatory
	},
	SubscribeResponse : function(){
		this.code;
		this.message;
	},
	DeleteRequest : function(){
    	this.id;		//Mandatory
    	this.type;		//Mandatory,(U-user/C-community)
    	this.targetId;	//Mandatory
	},
	DeleteResponse : function(){
		this.code;
		this.message;
	},
	ExportRequest : function(){
    	this.id;		//Mandatory
    	this.type;		//Mandatory,(U-user/C-community)
    	this.targetId;	//Mandatory
    	this.exportId;	//Mandatory
	},
	ExportResponse : function(){
		this.code;
		this.message;
	},
	LikeDetailRequest : function(){
    	this.id;		//Mandatory
	},
	LikeDetailResponse : function(){
		this.code;
		this.message;
		this.notificationId;
		this.likeId;
		this.likeCount;
		this.likeUser;
		this.status;
		this.recentLike;
	},
	CommunityDetailRequest : function(){
		this.communityId;
		this.pageSize;
		this.pagePosition;
		this.order;			// 0-Recent, 1-Hottest
		this.filter;		// 0 - All, 1-Bookmark, 2-Unanswered
	},
	CommunityDetailResponse : function(){
		
	},
	CommunityPreviewRequest : function(){
		this.pageSize;
		this.pagePosition;
		this.order;
		this.type;			// 0 for my community, 1 for Other community
	},
	CommunityPreviewResponse : function(){
		
	},
	CommunityStickyRequest : function(){
		this.notificationId;
		this.action;			// 0-Make sticky/1-unsticky
		this.communityId;
	},
	CommunityStickyResponse : function(){
		
	},
	MailSubscriptionRequest : function(){
		this.notificationId;
		this.notificationType;	// C- Communtiy updates and U- user updates
		this.action;			// 0-Subscribe/1-Unsubsribe
		this.communityId;
	},
	CommunityStickyResponse : function(){
		
	}
}